package com.zlb.service;

import com.zlb.configuration.JwtUtils;
import com.zlb.domain.User;
import java.util.Arrays;
import org.springframework.stereotype.Service;

/**
 * 用户信息接口
 */
@Service
public class UserService {

//	@Autowired
//	private StringRedisTemplate redisTemplate;
//

  /**
   * 保存user登录信息，返回token
   */
  public String generateJwtToken(String username) {
//    User User = new User();
//    User.setSalt(JwtUtils.generateSalt());
    //保存到数据库
    String salt = "123456";
    return JwtUtils.sign(username, salt, 3600); //生成jwt token，设置过期时间为1小时
  }

  /**
   * 获取上次token生成时的salt值和登录用户信息
   */
  public User getJwtTokenInfo(String username) {
    //根据用户名去数据库查找user
    User user = getUserInfo(username);
    return user;
  }

  /**
   * 清除token信息
   *
   * @param username 登录用户名
   */
  public void deleteLoginInfo(String username) {
    /**
     * @todo 删除数据库或者缓存中保存的salt
     * redisTemplate.delete("token:"+username);
     */

  }

  /**
   * 获取数据库中保存的用户信息，主要是加密后的密码
   */
  public User getUserInfo(String userName) {
    User user = new User();
    user.setUserId(1L);
    user.setUsername("admin");
    user.setPassword("123456");

//    user.setPassword(new Sha256Hash("dbRealm", encryptSalt).toHex());
    return user;
  }

  /**
   * 获取用户角色列表，强烈建议从缓存中获取
   */
  public java.util.List<String> getUserRoles(Long userId) {
    return Arrays.asList("admin");
  }

}
